import { typeof2 } from './index'

/**
 * 效验是否为空对象
 */
export function isEmptyObj (obj) {
  for (const key in obj) {
    // 判断对象是否包含特定的自身（非继承）属性
    if (Object.prototype.hasOwnProperty.call(obj, key)) return false
  }

  return true
}

/**
 * 效验不为空，值为 '', [], {}, undefined, null 会返回 false
 */
export const isNonempty = (data) => {
  const type = typeof2(data)

  if (['null', 'undefined'].includes(type)) return false

  switch (type) {
    case 'object': return !isEmptyObj(data)
    case 'array': return !!data.length
    case 'string': return !!data.trim()
    default: return true
  }
}

export const isMobile = value => {
  const reg = /^1\d{10}$/g
  return reg.test(value)
}

// 正整数校验
export const isPositiveInteger = value => {
  const reg = /^\+?[1-9]\d*$/
  return reg.test(value)
}

// 大于0，且最多保留两位小数
export const isPositiveTwoDecimal = value => {
  const reg = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/
  return reg.test(value)
}
